package Arvore;
/**
 *
 * @author Ana Raquel
 */
public class TestaArvore {
    private EstruturaNo raiz;
	private int maximoNiveis; // variável que vai indicar quantidade máxima de níveis que a árvore vai ter fornecida pelo usuário 
	private char tipoArvore = 'b';//para arvore AVL = 'a', para binária = 'b'
	
	public void criar_Arvore(int valor_Raiz) {
		//inicia a raiz com o valor desejado
		setRaiz(new EstruturaNo(valor_Raiz));
	}
	
	public void adicionar_No_Em(EstruturaNo noAtualArvore, int numero) {
		if(numero < noAtualArvore.getNumero()){//Se o valor a ser inserido é menor que a raiz, insere o no na sub-arvore esquerda
			if(noAtualArvore.getEsquerda() != null){
				//Se o no nao for vazio pula para o proximo a esquerda
				adicionar_No_Em(noAtualArvore.getEsquerda(), numero);
			}else{
				//Se o no e vazio insere nele
				noAtualArvore.setEsquerda(new EstruturaNo(numero));
			}
		}
		else if( numero > noAtualArvore.getNumero()){
			if(noAtualArvore.getDireita() != null){
				adicionar_No_Em(noAtualArvore.getDireita(), numero);
			}else{
				noAtualArvore.setDireita(new EstruturaNo(numero));
			}
		}	
	}
	public void imprimir(EstruturaNo  no){
		if (no != null){
			imprimir(no.getEsquerda());
			System.out.println(no.getNumero());
			imprimir(no.getEsquerda());
                        imprimir(no.getPai());
		}
		
	}
        
        public void imprima(EstruturaNo no){
            
        }

	public EstruturaNo getRaiz() {
		return raiz;
	}

	public void setRaiz(EstruturaNo raiz) {
		this.raiz = raiz;
	}
	
    
}
